import java.util.Arrays;

public class Test05 {
    public static void main(String[] args) {

    }
        // 递归方法来解决汉诺塔问题
        public static void hanoi(int n, char from_rod, char to_rod, char aux_rod) {
            if (n == 1) {
                System.out.println("\n 移动盘子 1 从 " + from_rod + " 到 " + to_rod);
                return;
            }
            hanoi(n - 1, from_rod, aux_rod, to_rod);
            System.out.println("\n 移动盘子 " + n + " 从 " + from_rod + " 到 " + to_rod);
            hanoi(n - 1, aux_rod, to_rod, from_rod);
        }
    public static void main9(String[] args) {
        // 测试递归方法
            int n = 3; // 盘子的数量

            // 调用递归方法开始解决汉诺塔问题
            hanoi(n, 'A', 'C', 'B'); // A为起始柱子，C为目标柱子，B为辅助柱子
        }
    //n为盘子数
    //pos1为起始位置
    //pos2为中转位置
    //pos3为目的位置
    public static void move(char A,char B){
        System.out.println('A'+">"+'B');
    }
    public static void hannuo(int n,char pos1,char pos2,char pos3){
        if(n==1)
        {
            move(pos1,pos3);
        }else{
            hannuo(n-1,pos1,pos3,pos2);
            move(pos1,pos3);
            hannuo(n-1,pos2,pos1,pos3);
        }

    }
    public static void main8(String[] args) {
        //递归求解汉诺塔问题
        hannuo(3, 'a', 'b', 'c');
    }
    public static int max1(int a,int b){
        return Math.max(a,b);
    }
    public static double max2(double a,double b,double c){
        return Math.max(Math.max(a,b),c);
    }
    public static void main7(String[] args) {
        //在同一个类中定义多个方法：要求不仅可以求2个整数的最大值，还可以求3个小数的最大值
        int a=10,b=20;
        double x=1.1,y=1.2,z=1.3;
        int max1=max1(a,b);
        double max2=max2(x,y,z);
        System.out.println(max1);
        System.out.println(max2);
        }
//        int a=10,b=20;
//        int c=Math.max(a,b);
//        System.out.println(c);
    public static int add(int a,int b){
        return a+b;
    }
    public static double add(double a,double b,double c){
        return a+b+c;
    }
    public static void main6(String[] args) {
        //在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码，求出结果
        int a=10,b=20;
        double x=1.1,y=1.2,z=1.3;
        int a1=add(a,b);
        double a2=add(x,y,z);
        System.out.println(a1);
        System.out.println(a2);
        }
    public static void main5(String[] args) {
        int[][]arr=new int[][]{{1,2,3},{1,2,3}};
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j <arr[i].length ; j++) {
                System.out.print(arr[i][j]+" ");
            }
        }
        for (int[]arr1:arr) {
            for (int x:arr1) {
                System.out.print(x+" ");
            }
            System.out.println();
        }
        System.out.println(Arrays.toString(arr));
        System.out.println(Arrays.deepToString(arr));
    }
    public static void main3(String[] args) {
        int[]arr1=new int[]{1,5,9,6,4};
        int[]arr2=new int[]{1,5,3,6,4};
        boolean a=Arrays.equals(arr1,arr2);
        Arrays.fill(arr1,1,3,0);//不包含三下标
        System.out.println(Arrays.toString(arr1));
        System.out.println(a);
    }
    public static int[] copyfun(int[]arry){
        int[]copy=new int[arry.length];
        for (int i = 0; i < arry.length; i++) {
            copy[i]=arry[i];
        }
        return copy;
    }
    public static void main2(String[] args) {
        //数组拷贝
        int[]arr=new int[]{1,1,8,9,1,10};
        int[]copy=copyfun(arr);
        int[]code=Arrays.copyOf(arr,3);
        int[]code1=Arrays.copyOfRange(arr,2,5);
        System.out.println(Arrays.toString(code1));
        System.out.println(Arrays.toString(code));
        System.out.println(Arrays.toString(copy));
    }
    public static void main1(String[] args) {
        int[]arr=new int[]{10,2,6,7,19,1,3,56,9};
        for(int i=0;i<arr.length-1;i++){//趟数
            boolean flg=false;
            for(int j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    int tmp=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=tmp;
                    flg=true;
                }
            }
            if(flg==false){
                return ;
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}
